/**
 * 认证相关API接口
 */

import { http } from '@/utils/request'

// 登录请求参数
export interface LoginCredentials {
  username: string
  password: string
}

// 注册请求参数
export interface RegisterCredentials {
  username: string
  // phone: string // 注释掉手机号字段
  password: string
  confirmPassword: string
}

// 微信登录请求参数
export interface WxLoginCredentials {
  code: string
  userInfo?: {
    nickName?: string
    avatarUrl?: string
    gender?: number
    country?: string
    province?: string
    city?: string
    language?: string
  }
  deviceInfo?: string
}

// 后端返回的用户信息（用于API响应）
export interface ApiUserInfo {
  id: number
  username: string
  nickname?: string
  avatar?: string
  // phone?: string // 注释掉手机号字段
  email?: string
}

// 登录响应
export interface LoginResponse {
  userId: number
  accessToken: string
  refreshToken: string
  expiresTime: string
  userInfo: ApiUserInfo
  openid?: string // 微信登录时返回
}

/**
 * 用户登录
 */
export function login(data: LoginCredentials) {
  return http.post<LoginResponse>('/reading/auth/login', data)
}

/**
 * 用户注册
 */
export function register(data: RegisterCredentials) {
  return http.post<LoginResponse>('/reading/auth/register', data)
}

/**
 * 微信登录
 */
export function wxLogin(data: WxLoginCredentials) {
  return http.post<LoginResponse>('/reading/auth/wx-login', data)
}

/**
 * 退出登录
 */
export function logout() {
  return http.post<boolean>('/reading/auth/logout')
}
